package com.teamone.etl.enterprise.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teamone.etl.enterprise.entity.Enterprise;
import com.teamone.etl.enterprise.request.EnterpriseRequest;
import com.teamone.etl.enterprise.response.ApiResponse;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 (Enterprise)表数据库访问层

 @author makejava
 @since 2021-01-19 16:31:59 */
@Mapper
public interface EnterpriseDao extends BaseMapper<Enterprise> {

    /**
     分页查询
     @param request 请求参数封装类
     @return 结果集
     */
    List<Enterprise> getList (EnterpriseRequest request);

    /**
     修改
     @param request 请求参数封装类
     @return 受影响行数
     */
    int update (EnterpriseRequest request);

    /**
     添加
     @param request 请求参数封装类
     @return 受影响行数
     */
    int add (EnterpriseRequest request);

    /**
     添加 - 判断是否有相同名字的公司
     @param enterpriseName 企业名称
     @return Enterprise对象
     */
    Enterprise getByEnterpriseName (String enterpriseName);

    /**
     更新 - 判断是否有相同名字的公司 - 排除自己
     @param request 请求参数封装
     @return 企业信息
     */
    Enterprise getByEnterpriseNameAndIdIsNotThis (EnterpriseRequest request);

    /**
     查询所有
     @return List<Map>
     */
    List<Enterprise> getAll ();

    /**
     查询接口列表
     @param enterpriseId 企业id
     @return 接口集合
     */
    List<ApiResponse> apiList (@Param("enterpriseId") Integer enterpriseId);

    /**
     登陆
     @param registrantMobileNumber 手机号
     @return 根据手机号查到的信息
     */
    Enterprise getByMobile (@Param("registrantMobileNumber") Long registrantMobileNumber);

    /**
     更新 - 判断是否有相同手机号的公司 - 排除自己
     @param request 封装参数
     @return 企业信息
     */
    Enterprise getByMobileAndIdIsNotThis (EnterpriseRequest request);

    /**
     修改密码
     @param request 封装参数
     @return 受影响行数
     */
    int changePassword (EnterpriseRequest request);
}